package com.ruoyi.web.domain.res;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

//微信立减金返回值
@Data
public class CouponResponse {

    @JsonProperty("data")
    private List<CouponData> data;

    //每页数量
    @JsonProperty("limit")
    private int limit;

    //当前页 0 为开始
    @JsonProperty("offset")
    private int offset;

    //总数量
    @JsonProperty("total_count")
    private int totalCount;

    @Data
    public static class CouponData {

        //代金卷可用开始时间
        @JsonProperty("available_begin_time")
        private String availableBeginTime;

        //代金卷可用结束时间
        @JsonProperty("available_end_time")
        private String availableEndTime;

        @JsonProperty("card_id")
        private String cardId;

        //领券时间
        @JsonProperty("create_time")
        private String createTime;

        //代金券描述说明字段。
        @JsonProperty("description")
        private String description;

        @JsonProperty("distributed_coupons")
        private int distributedCoupons;

        //是否无资金流
        @JsonProperty("no_cash")
        private boolean noCash;

        //是否单品优惠
        @JsonProperty("singleitem")
        private boolean singleItem;

        /**
         * 	代金券状态：
         * SENDED：可用
         * USED：已实扣
         * EXPIRED：已过期
         */
        @JsonProperty("status")
        private String status;

        /**
         * 批次创建方商户号
         */
        @JsonProperty("stock_creator_mchid")
        private String stockCreatorMchid;

        /**
         * 批次号
         */
        @JsonProperty("stock_id")
        private String stockId;

        @JsonProperty("stock_name")
        private String stockName;

        @JsonProperty("stock_type")
        private String stockType;

        @JsonProperty("stock_use_rule")
        private StockUseRule stockUseRule;

    }


    // Nested Class for StockUseRule
    @Data
    public static class StockUseRule {

        @JsonProperty("combine_use")
        private boolean combineUse;

        /**
         * 	券类型：
         * NORMAL：满减券
         * CUT_TO：减至券
         */
        @JsonProperty("coupon_type")
        private String couponType;

        @JsonProperty("fixed_normal_coupon")
        private FixedNormalCoupon fixedNormalCoupon;

        @JsonProperty("goods_tag")
        private List<String> goodsTag;

        @JsonProperty("max_amount")
        private int maxAmount;

        @JsonProperty("max_amount_by_day")
        private int maxAmountByDay;

        @JsonProperty("max_coupons")
        private int maxCoupons;

        @JsonProperty("max_coupons_per_user")
        private int maxCouponsPerUser;

        @JsonProperty("trade_type")
        private List<String> tradeType;

    }
    // Nested Class for FixedNormalCoupon
    @Data
    public static class FixedNormalCoupon {

        //面额 单位 分
        @JsonProperty("coupon_amount")
        private int couponAmount;

        //门槛 单位 分
        @JsonProperty("transaction_minimum")
        private int transactionMinimum;
    }
}
